package domain;

/*
 * @Author: Thomas Teilmann
 */

import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

@Entity
public class Behandling {
	
	@Id
	private String navn;
	@OneToMany(cascade={CascadeType.ALL})
	@JoinColumn
	private List<DelBehandling>delbehandlinger = new ArrayList<DelBehandling>();
	
	@OneToMany(cascade={CascadeType.ALL})
	@JoinColumn
	private List<MellemVare>mellemvarer = new ArrayList<MellemVare>();
	
	
	public Behandling(String navn){
		this.navn = navn;
	}
	
	public Behandling(){
		
	}

	public String getNavn() {
		return navn;
	}

	public void setNavn(String navn) {
		this.navn = navn;
	}
	
	public List<DelBehandling> getAllDelBehandlinger(){
		return new ArrayList<DelBehandling>(delbehandlinger);
	}
	
	public void addMellemVare(MellemVare mellemVare){
		this.addMellemVareUD(mellemVare);
		mellemVare.setBehandling(this);
	}
	public void addMellemVareUD(MellemVare mellemVare){
		this.mellemvarer.add(mellemVare);
	}
	
	public List<MellemVare> getMellemVareList(){
		return mellemvarer;
	}

	public void removeMellemVare(MellemVare mellemVare) {
		mellemvarer.remove(mellemVare);
	}
	
	public DelBehandling opretDelBehandling(int id, int minT, int optT, int maxT, int forventetBehandlingsTid){
		DelBehandling d1 = new DelBehandling(id, minT, optT, maxT, forventetBehandlingsTid);
		delbehandlinger.add(d1);
		Service.getInstance().update();
		return d1;
	}
	
	public void deleteDelbehandling(int pos){
		delbehandlinger.remove(pos);
	}
	
	public void setDelbehandlinger(List<DelBehandling> delbehandlingList){
		this.delbehandlinger.clear();
		this.delbehandlinger.addAll(delbehandlingList);	
	}
	
	@Override
	public String toString() {
		return navn;
	}



}
